package com.zhangtai.modules.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class DimissionEntityVo {


	@TableId
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
		private Long id;
		/**
	 * 员工id
	 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long oid;
		/**
	 * 申请人
	 */
		private String applyName;
		/**
	 * 申请日期
	 */
		private Date applyDate;
		/**
	 * 工号
	 */
		private String code;
		/**
	 * 入职日期
	 */
		private Date hiredate;
		/**
	 * 姓名
	 */
		private String name;
		/**
	 * 部门id
	 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long unitId;
		/**
	 * 公司id
	 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long orgId;
		/**
	 * 岗位id
	 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long jobId;
		/**
	 * 职级id
	 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long joblevelId;
		
		/**
		 * 体系id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long job_system_id;
		/**
	 * 职级类别
	 */
		private Integer joblevelType;
		/**
	 * 离职日期
	 */
		private Date dimissionTime;
		/**
	 * 交接人
	 */
		private String associate;
		/**
	 * 主管辅导
	 */
		private String zhudaoScore;
		/**
	 * 薪资报酬
	 */
		private String salaryScore;
		/**
	 * 工作时长
	 */
		private String workTimeScore;
		/**
	 * 培训获得
	 */
		private String trainGetScore;
		/**
	 * 晋升机会
	 */
		private String promotionScore;
		/**
	 * 沟通渠道
	 */
		private String communicationScore;
		
		/**
		 * 审批状态：0.待审批，1.已审批，2.驳回
		 */
		private String rurnover_status;
		
		/**
		 * 附件路径
		 */
		private String url_ids;
		
		/**
		 * 离职方式
		 */
		private String mode;
		
		/**
		 * 离职类型
		 */
		private String dimission_type;
		
		/**
		 * 保密协议
		 */
		private String secrecy;
		
		/**
		 * 违约金补偿
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long liquidated_damages;
		
		/**
		 * 离职去向
		 */
		private String whereabouts;
		
		/**
		 * 司龄
		 */
		private String secretary_ling;
		
		/**
		 * 申请日期
		 */
		private Date application_date;
		
		/**
		 * usercode
		 */
		private String apply_code;

		/**
		 * 离职原因
		 */
		private String reason;
		/**
	 * 0:正常。1：删除
	 */
		private Integer isDelete;

		private Date createTime;
		
		/**
		 * 负责人
		 */
		private String principal;
		/**
		 * 负责人工号
		 */
		private String principalUserCode;

				/**
			 * 性别
			 */
				private String gender;
				/**
			 * 身份证号
			 */
				private String idcard;

				/**
			 * 民族
			 */
				private String nation;
				/**
			 * 籍贯
			 */
				private String nativeplace;
				/**
			 * 国籍
			 */
				private String nationality;
				/**
			 * 手机
			 */
				private String mobile;
				/**
			 * 政治面貌
			 */
				private String polity;
				/**
			 * 户口所在地
			 */
				private String regresidence;
				/**
			 * 家庭地址
			 */
				private String address;
				/**
			 * 个人电子邮件
			 */
				private String privatemail;
				/**
			 * 健康状态
			 */
				private String healthstatus;
				/**
			 * 是否退伍兵
			 */
				private String disbandment;
				/**
			 * 婚姻状况
			 */
				private String marital;
				/**
			 * 参加工作日期
			 */
				private Date beginworkdate;
				/**
			 * 生日
			 */
				private Date birthday;
				/**
			 * 操作时间
			 */
				private Date operatetime;
				/**
			 * 0:社招，1：实习生
			 */
				private String socialTrainee;
				/**
			 * 联系方式
			 */
				private String contact;
				/**
			 * 拟录用部门
			 */
				private String unitname;
				/**
				 * * 拟录用公司
			 */
				private String orgname;
				/**
			 * 拟录用岗位
			 */
				private String jobname;

		/**
		 * 职级id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
			private Long jobLevelId;
		/**
		 * 职级
		 */
			private String jobLevel;

		@ApiModelProperty(value="职级类别,1:专业职级，2：管理职级",required = false)
		private Integer jobLevelType;
				/**
			 * 管理职级Id
			 */
				@JsonDeserialize(using = LongJsonDeserializer.class)
				@JsonSerialize(using = LongJsonSerializer.class)
				private Long managementJoblevelId;

		/**
		 * 管理职级
		 */
		private String managementJoblevel;

		/**
		 * 专业职级Id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long professionJoblevelId;

		/**
		 * 专业职级
		 */
		private String professionJoblevel;

				/**
			 * 试用期
			 */
				private Integer probationday;

			/**
			 * 转正日期
			 */
			private Date regularDay;
				/**
			 * 固定月薪
			 */
				private BigDecimal monthlySalary;
				/**
			 * 模块绩效
			 */
				private BigDecimal performance;
				/**
			 * 二维码
			 */
				private String qrcodeUrl;
				/**
			 *  员工录用状态：0:新建 ，1：填写完已保存 2：bpm审批中，3：审批完成,4:流程作废，5：offer已发送，6：流程被驳回
			 */
				private Integer status;
				/**
			 * 0:未提交，1：提交
			 */
				private Integer preSubmit;
				/**
			 * 招聘渠道
			 */
				private String channel;
				/**
			 * 招聘网站
			 */
				private String recruitmentWeb;
				/**
			 * 推荐人-内部
			 */
				private String innerReferrer;
				/**
			 * 推荐人-外部
			 */
				private String outerReferrer;

				private String record;

				private String flowId;

				private String token;



				private String line;

				private String jobSystem;

		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long jobSystemId;

				@JsonDeserialize(using = LongJsonDeserializer.class)
				@JsonSerialize(using = LongJsonSerializer.class)
				private Long lineId;



		@ApiModelProperty(value="是否公司负责人，null：不是，1：是",required = false)
		private Integer iscentreprincipal;

		@ApiModelProperty(value="是否部门负责人，null：不是，1：是",required = false)
		private Integer isdepartmentprincipa;


		/**
		 * 是否分配了薪资组 薪资组分配情况，0:未分配，1：已分配
		 */
		private Integer isDistribute;

		/**
		 * 薪资组id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long salaryGroupId;

		/**
		 * 薪带宽款监控是否删除，0：正常，1：删除
		 */
		private Integer salaryBandMonitoringIsDelete;


		private Integer flowType;


		/**
		 * 0:新员工，1：复职员工，2：旧员工
		 */
		private Integer isReinstate;

		/**
		 * 转正操作 0:未转正，1：转正 ，2：延期转正 3：不予转正
		 */
		private Integer isRegular;

		/**
		 * 0:转正 未处理，1：已处理
		 */
		private Integer regularIsDone;


		/**
		 * 员工状态
		 */
		@ApiModelProperty(value="员工状态，2：在职，9：实习，3,4,5,6：离职",required = false)
		private String employeestatus;

		@ApiModelProperty(value="工作地点",required = false)
		private String workAddress;

		/**
		 * 是否发送offer
		 */
		private Integer isOffer;

		/**
		 * 用工类型
		 */
		@ApiModelProperty(value="用工类型",required = false)
		private String jobType;

		/**
		 * 合同类型，0：聘用合同，1：劳动合同
		 */
		private String contractType;


		/**
		 * 合同期限类型，1：固定期限，2：无固定期限 ，3：完成一定工作期限，4：5至10年(含10年)，5：无固定期限，6：完成一定工作期限，7：其他
		 */
		private String contractTimeType;

		/**
		 * 劳动合同期限
		 */
		private Integer  laborContractYears;



		/**
		 * 甲方主体id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long employerCompanyId;

		/**
		 * 合同生效日期
		 */
		private Date contractBeginDate;
		/**
		 * 合同截止日期
		 */
		private Date contractEndDate;

		/**
		 * 合同签订日期
		 */
		private Date signDate;

		/**
		 * 合同签订人
		 */
		private String signNer;

		/**
		 * 在公司的亲属姓名
		 */
		private String relativeName;
		/**
		 * 亲属身份证
		 */
		private String relativeIdCard;

		/**
		 * 亲属关系
		 */
		private String relationship;

		/**
		 * 亲属所在单位
		 */
		private String relativeUnit;

		private Date updateTime;

		/**
		 * 备注
		 */
		private String remark;

		/**
		 * 处理状态 0、SSC处理中 1、评分审核中 2、薪酬核定中 3、员工发起中 4、BPM审批中 5、已办结
		 */
		@ApiModelProperty(value="处理状态 0、SSC处理中 1、评分审核中 2、薪酬核定中 3、员工发起中 4、BPM审批中 5、已办结",required = false)
		private Integer dealStatus;

		/**
		 * 薪资备注
		 */
		@ApiModelProperty(value="薪资备注",required = false)
		private String salaryRemark;

		/**
		 * 是否推送了员工录用通知
		 */
		private Integer isHireNotice;
		/**
		 * 用户是否填写
		 */
		private Integer isMemberDone;
		/**
		 * 是否确最终确认入职
		 */
		private Integer isHireDone;
		
		/**
		 * 入职状态：0.未处理，1.已处理
		 */
		private Integer isEntryStatus;

		/**
		 * 合同状态，0：合同未发送，1：合同已发送，2合同已签署
		 */
		private Integer isSendContract;

		/**
		 * 合同流程id
		 */
		private Integer esignFlowId;

    /**
     * 插入时间
     */
    private Date insetDate;

    /**
     * 员工编号
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long employeeOid;

    @ApiModelProperty(value = "退伍军人编号", required = false)
    private String veteranNum;

}
